//package org.javaboy.grpc.demo;
//
//import com.lglbc1.hello.OpenAPIGrpc;
//import com.lglbc1.hello.Request;
//import com.lglbc1.hello.Response;
//import io.grpc.stub.StreamObserver;
//
///**
// * @author: jiaxiangen
// * @Date: 2025/6/3 15:29
// * @Version 1.0
// * @Description: rpc 服务
// */
//public class Service extends OpenAPIGrpc.OpenAPIImplBase {
//
//    @Override
//    public void singleRequest(Request request, StreamObserver<Response> responseObserver) {
//        String name = request.getName();
//        Response build = Response.newBuilder().setMessage("response").build();
//        responseObserver.onNext(build);
//        responseObserver.onCompleted();
//    }
//
//    @Override
//    public StreamObserver<Request> clientStreaming(StreamObserver<Response> responseObserver) {
//        return new StreamObserver<Request>() {
//
//            @Override
//            public void onNext(Request request) {
//                System.out.println(request.getName());
//            }
//
//            @Override
//            public void onError(Throwable throwable) {
//                System.out.println(throwable);
//
//            }
//
//            @Override
//            public void onCompleted() {
//                System.out.println("clientStreaming server onCompleted");
//                responseObserver.onNext(Response.newBuilder().setMessage("clientStreaming complete").build());
//                responseObserver.onCompleted();
//            }
//        };
//    }
//
//    @Override
//    public void serverStreaming(Request request, StreamObserver<Response> responseObserver) {
//        for (int i = 0; i < 5; i++) {
//            responseObserver.onNext(Response.newBuilder().setMessage("serverStreaming" + i).build());
//        }
//        responseObserver.onCompleted();
//
//    }
//
//    @Override
//    public StreamObserver<Request> bidirectionalStreaming(StreamObserver<Response> responseObserver) {
//
//        return new StreamObserver<Request>() {
//            @Override
//            public void onNext(Request request) {
//                // 处理接收到的请求
//                System.out.println("收到客户端请求:" + request.getName());
//                // 发送多个响应消息
//                Response response = Response.newBuilder()
//                        .setMessage("服务端消息：")
//                        .build();
//                responseObserver.onNext(response);
//            }
//
//            @Override
//            public void onError(Throwable t) {
//                // 处理错误
//                System.out.println("错误信息:" + t.getMessage());
//            }
//
//            @Override
//            public void onCompleted() {
//                // 发送响应
//                Response response = Response.newBuilder()
//                        .setMessage("消息处理完成")
//                        .build();
//                responseObserver.onNext(response);
//                responseObserver.onCompleted();
//            }
//        };
//    }
//
//}
